package com.fan.analysis.module.show.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fan.analysis.module.analysis.group.domain.entity.UserInfoEntity;
import com.fan.analysis.module.analysis.group.domain.entity.UserRelationEntity;
import com.fan.analysis.module.show.domain.entity.CallRecordCompleteEntity;
import com.fan.analysis.module.show.domain.vo.CallRecordVo;
import com.fan.analysis.module.show.domain.vo.MessageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * @author fan
 * @date 2021/10/08 16:53
 **/
@Component
@Mapper
public interface ShowDao extends BaseMapper<CallRecordCompleteEntity> {

    /**
     * 通过电话号码、开始时间、结束时间 查找用户通话记录
     *
     * @param phoneNum  电话号码
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 用户通话记录
     */
    List<CallRecordVo> listCallRecordInfos(@Param("phoneNum") String phoneNum, @Param("startTime") Date startTime, @Param("endTime") Date endTime);


    /**
     * 获取电话号码所处城市
     *
     * @param phoneNum 电话号码
     * @return 所处城市
     */
    String getCityByPhoneNum(@Param("phoneNum") String phoneNum);

    /**
     * 通过电话号码、开始时间、结束时间 查找用户短信记录
     *
     * @param phoneNum  电话号码
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 短信记录
     */
    List<MessageVo> listMessageRecordInfos(@Param("phoneNum") String phoneNum, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 获取所有用户数据
     *
     * @return 所有用户数据
     */
    List<UserInfoEntity> listUserInfos();

    /**
     * 获取所有关系
     * @return 所有关系
     */
    List<UserRelationEntity> listUserRelationInfos();
}
